<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>DonReY Framework :: What is the DonReY Framework ?</title>
<link rel='stylesheet' type='text/css' href='/Documentation/DonReY.css' media='screen' />
</head>
<body>
<a href="/documentation/donrey.html" title="DonReY Framework Documentation">DonReY Framework Documentation</a> &raquo; <a href="/documentation/getting-started.html" title="Getting Started">Getting Started</a> &raquo; What is the DonReY Framework ?
<hr />
	<h2>What is the DonReY Framework ?</h2>

	<p>DonReY embodies the concept of <a href="http://en.wikipedia.org/wiki/Don%27t_repeat_yourself"><span class="caps">DRY</span></a> ( <em>Don&#8217;t Repeat Yourself</em> ) in an efficient and scalable php framework. It was created with the following concepts in mind:</p>

	<ol>
		<li>Maximum reuse of code, in which a specific type of action can be applied to many kinds of data.</li>
		<li>Everything is optional, the programmer is not forced to a certain method of work, but some modules do require specific organization of your project.</li>
		<li>Lightweight and efficient in execution (uses <a href="http://en.wikipedia.org/wiki/Lazy_loading">Lazy Loading</a> design pattern whereever possible, to save server resources)</li>
		<li>Highly modular, with each module being used only for specific tasks, while connecting to other modules to delegate work.</li>
		<li>Simple to learn and use and easy to configure (however, it is a framework, not a black-box <span class="caps">CMS</span>, so object-oriented programming knowledge is required)</li>
		<li>Extensible through the use of standard <span class="caps">PHP</span> language syntax ( extensible classes ), doesn&#8217;t attempt to invent &#8220;plugins&#8221;, &#8220;components&#8221; and other rigid code.</li>
		<li>Zero &#8220;Code Writing&#8221; due to advanced <span class="caps">PHP</span> 5.3 features (magic methods, decorator pattern, anonymous functions etc.). It is what it is, it never creates extra code files (like the idea of &#8220;Data Models&#8221; in other frameworks)</li>
	</ol>

	<p>DonReY implements these framework/CMS features:</p>

	<ul>
		<li>Written for <span class="caps">PHP</span> 5.3 ( minimum version ) &#8211; Uses modern language features</li>
		<li>Built-in <a href="../structure/modules/debug.html">debugging system</a>, to help development and iron out problems quickly</li>
		<li>Model-View-Controller concept ( Push (<a href="../structure/modules/render.html">Render module</a>) or Pull ( <a href="../structure/modules/layout.html">Layout module</a>), both usable at the same time )</li>
		<li>Flexible data storage systems ( <a href="../structure/modules/database.html">databases</a>, files, memory, remote data )</li>
		<li>Object-relational model ( <a href="../structure/modules/record.html">Active-Record</a> ) and <span class="caps">RDBMS</span> independent querying through the use of a <a href="../structure/modules/queryfactory.html">Query Factory</a> system</li>
		<li>Implements <a href="../structure/modules/structure.html">data structures</a> in a database ( List, Tree, Graph )</li>
		<li>Frontend code ( JavaScript/AJAX ), with the help of jQuery &#8211; but not mandatory</li>
		<li>Commonly used Content Management mechanism implemented in modules, so a website-type project can be quickly constructed with minimal coding
	<ul>
		<li><a href="../structure/modules/authentication.html">User Authentication</a> mechanism with high-security credentials storage</li>
		<li>A simple <a href="../structure/modules/news.html">Blog/News system</a> which supports the most world-wide used features</li>
		<li>Custom <a href="../structure/modules/cmsmatrix.html">Document storage system</a> (and rendering) for non-standard websites</li>
	</ul></li>
		<li>Internationalization with a simple to use <a href="../structure/modules/translate.html">translation system</a></li>
		<li>Built using several common design patterns ( Lazy Initialization, Lazy Loading, Factory method, Multiton, Singleton, Observer, Decorator, Front Controller, Iterators, Adapter )</li>
		<li>Makes use of 3rd-party libraries to do what they do best ( FirePHP, jQuery, GeSHi, Textile, Spyc &#8230; )</li>
	</ul>
</body>
</html>
<!-- http://www.donrey.net/Documentation - Built with DonReY Framework http://www.donrey.net/ - Powered by PHP, MySQL, JavaScript -->